The present invention relates to cellular communication systems and more particularly to digital cellular receivers in which error correcting decoders are employed.
In cellular communication systems, encoding/decoding procedures are applied to transmitted voice and other data to reduce data errors. Prior to transmission from a mobile phone or from a base station, encoding is usually performed with either a block coding scheme or a trellis coding scheme.
In the prior art, the most common cellular system procedure for encoding messages at the transmit end of the system is a two step procedure in which a message is first encoded using a cyclic redundancy code (CRC) in an outer code loop and then encoded using a trellis or block code in an inner code loop. At the receiving end of the cellular system, the message is decoded using the inner loop code to eliminate as many errors as possible through forward error correction (FEC).
The message is then decoded using the outer loop CRC code to detect whether any message errors still exist. The message is discarded if any error is detected.
The most common block coding scheme is the Reed-Solomon scheme which is best adapted for correcting burst data errors such as those that often occur in cellular communication channels as a result of Rayleigh fading. Trellis encoding is most commonly implemented by means of a convolutional scheme, and is best adapted for correcting random data errors. Each of these schemes has been variously embodied to limit data transmission errors in cellular communication systems.
To provide for error correction and detection in the Reed-Solomon scheme, data in a word to be transmitted is first encoded in an outer loop commonly by a CRC encoder which generates CRC error detection bits. Parity bits are also generated to provide FEC in accordance with the Reed-Solomon procedure. The CRC and FEC bits are combined with the data bits in the word to be transmitted, such as from a mobile unit.
The received word is checked to determine whether the data bits received are the same as the data bits transmitted. For this purpose, the received word data is first passed through a Reed-Solomon decoder where FEC is applied. The Reed-Solomon output is then passed through a CRC encoder.
The resulting CRC code bits and the received CRC code bits are compared. If the compared CRC bits are the same, the data is accepted as valid. If a difference is detected, the received data is discarded as erroneous. Generally, a CRC encoder having a longer CRC code provides better error protection by making it less likely that a data error will go undetected.
Generally, a Reed-Solomon (R-S) decoder can correct as many symbol erasures as there are parity symbols in an encoded R-S code word. A symbol erasure is an R-S symbol that can be identified as probably being corrupted. If erasure information is not available, the R-S decoder can still be used to locate error symbols, and then correct the located error symbol. However, when the R-S decoder is used to locate and correct symbol errors, only half as many error symbols can be corrected as there are parity symbols. Therefore, a Bit Error Rate (BER) performance gain can be realized when R-S symbol erasures can be identified without using the R-S decoder to locate them.
Prior art decoding schemes for R-S and other block codes have generally made use of soft decision (reliability) information to improve R-S coder/decoder performance, but improvements have been limited by the type of soft decision information employed and the manner of its use in identifying symbol error locations. Prior art decoding schemes for trellis or convolutional codes have similarly been limited in the extent to which coder/decoder performance has been improved through the use of soft decision information.